package org.x.usermod.service;

import org.x.usermod.dto.GetDeptUsersDTO;
import org.x.usermod.dto.ModifyDeptDTO;
import org.x.usermod.dto.CreateDeptDTO;
import org.x.usermod.entity.SysDeptEntity;
import org.x.usermod.vo.DeptTreeVO;
import org.x.usermod.vo.GetDeptListVO;
import org.x.usermod.vo.GetDeptUsersVO;

import java.util.List;

public interface DeptService {
    /**
     * 创建部门
     * @param createDeptDTO
     * @return
     */
    Long createDept(CreateDeptDTO createDeptDTO);

    /**
     * 更新部门
     * @param modifyDeptDTO
     */
    void modifyDept(ModifyDeptDTO modifyDeptDTO);

    /**
     * 删除部门
     * @param id
     */
    void deleteDept(Long id);

    /**
     * 查询部门列表
     * @param page 页码
     * @param size 每页数量
     * @param name 部门名称
     * @return
     */
    GetDeptListVO list(Integer page, Integer size, String name);

    /**
     * 查询部门详情
     * @param id
     * @return
     */
    SysDeptEntity getDeptDetail(long id);

    /**
     * 部门树
     * @return
     */
    List<DeptTreeVO> getDeepTree();

    /**
     * 部门用户列表
     * @return
     */
    GetDeptUsersVO getDeptUserList(GetDeptUsersDTO getDeptUsersDTO);
}
